for(j=0;j<sqrt((double)i);j++); 设置断点查看时,j可以大于sqrt((double)i)
来源:百度知道 编辑:UC知道 时间:2024/06/05 11:47:32
为什么?
// c3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
int fun(int n)
{
double sum=0;
int i;
for(i=3;i<=n;i++)
{
bool flag=false;
int j;
for(j=0;j<sqrt((double)i);j++);
{
if(i%j==0)
{
flag=true;
}
}
if(flag==false)
{
sum+=sqrt((double)i);
}
}
return sum;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
double s;
FILE *out;
printf("nInput n: ");
scanf("%d",&n);
s=fun(n);
printf("\n\ns=%f\n",s);
out=fopen("out.dat","w");
for(n=0;n<10;n++)
{
fprintf(out,"%f\n",fun(n+20));
}
fclose(out);
return 0;
}
// c3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
int fun(int n)
{
double sum=0;
int i;
for(i=3;i<=n;i++)
{
bool flag=false;
int j;
for(j=0;j<sqrt((double)i);j++);
{
if(i%j==0)
{
flag=true;
}
}
if(flag==false)
{
sum+=sqrt((double)i);
}
}
return sum;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
double s;
FILE *out;
printf("nInput n: ");
scanf("%d",&n);
s=fun(n);
printf("\n\ns=%f\n",s);
out=fopen("out.dat","w");
for(n=0;n<10;n++)
{
fprintf(out,"%f\n",fun(n+20));
}
fclose(out);
return 0;
}
for(j=0;j<sqrt((double)i);j++);
{
if(i%j==0)
{
flag=true;
}
}
在for循环的最后一步中,j本来是小于sqrt((double)i)的,但j++后,j的值就大于sqrt((double)i)了,这是for循环就结束了
只有上述情况下j有可能大于sqrt((double)i),不知你的意思是不是指这个
j的声明要放在函数一开始,你这里放在一个for语句的后面,容易出错!
for(j=0;j<sqrt((double)i);j++); 设置断点查看时,j可以大于sqrt((double)i)
请问,在C语言中,FOR循环可不可以这么写 for(i=0, j=0 ; i<5, j<6 ; i++, j++ ;)
for(i=0;i<n-1;i++){ m=i;for(j=i+1;j<n;j++);----}为什么for(j=i+1;j<n;j++)的运行次数是n(n-1)/2次呢?
j=0 For i=1To10 Step3 j=j+i Next i j是多少?
c语言中套嵌循环for(i=1;i<=5;i++); for(j=1;j<=i;j++);怎么理解?
j!=(j-1)!*j
for(i=1;i<=n;i++) a[i,j])0 ;的时间复杂度是
C语言的条件for (; !j&&i<=5;i++)
循环for(i=0,j=5;++i!=--j;)printf("%d%d",i,j);将执行多少次?为什么?谢谢!!
???j????